Understanding The Halting Problem